/* indent size: 2 */

module.exports = (app) => {
  const DataTypes = app.Sequelize;

  const Animal = app.model.define(
    'animal',
    {
      id: {
        type: DataTypes.INTEGER,
        unique: true,
        primaryKey: true,
        autoIncrement: true,
        allowNull: false,
      },
      userId: {
        type: DataTypes.INTEGER.UNSIGNED,
        allowNull: true,
      },
      name: {
        type: DataTypes.STRING(32),
        allowNull: false,
      },
      age: {
        type: DataTypes.INTEGER,
        allowNull: true,
      },
      gender: {
        type: DataTypes.STRING(10),
        allowNull: true,
      },
      createdAt: {
        type: DataTypes.DATE,
        allowNull: true,
        field: 'created_at',
      },
      updatedAt: {
        type: DataTypes.DATE,
        allowNull: true,
        field: 'updated_at',
      },
    },
    {
      tableName: 'animal',
      // 要使用 createdAt/updatedAt 必须开启这项配置
      timestamps: true,
      freezeTableName: true,
    }
  );

  // 数据库同步
  Animal.sync(); // ：如果数据库表不存在，则创建数据库表，如果存在，则不做任何操作

  Animal.associate = function () {
    // app.model.Animal.belongsTo(app.model.User, {
    //   foreignKey: 'userId',
    //   targetKey: 'id',
    // });
  };

  return Animal;
};
